package 剑指offer.树;

/**
 * 操作给定的二叉树，将其变换为源二叉树的镜像。
 */
public class 第27题二叉树的镜像 {

    class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;
        public TreeNode(int val) {
            this.val = val;
        }
    }

    /*
    遍历每一个非叶子节点，交换他们的左右孩子
     */
    public void Mirror(TreeNode root) {
        if (root == null)
            return;
        if (root.left == null && root.right == null)
            return;
        TreeNode tmp = root.right;
        root.right = root.left;
        root.left = tmp;
        if (root.left != null)
            Mirror(root.left);
        if (root.right != null)
            Mirror(root.right);
    }
}
